#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# 第1行注释可以让这个hello.py文件直接在Unix/Linux/Mac上运行，
# 第2行注释表示.py文件本身使用标准UTF-8编码；
# 当我们定义了一个类属性后，这个属性虽然归类所有，但类的所有实例都可以访问到。来测试一下
# 使用使用__slots__
class Student(object):
    pass


# 给实例绑定一个属性
stu1 = Student()
stu1.name = "wangyk"
print("给实例绑定一个属性", stu1.name)


# 给实例绑定一个方法
def getNumber(self, x):
    self.name = x
    return self.name


from types import MethodType

stu1.setNumber = MethodType(getNumber, stu1)
stu1.setNumber("wangyk")
print("给实例绑定一个方法：" + stu1.name)
# 给实例绑定一个方法，对其它实例不起效果
stu2 = Student()


# stu2.setNumber(24)
# 如果要对所有实例都绑定方法，需要对类进行绑定
def setNumber(self, x):
    self.score = x


Student.setScore = setNumber
stu2.setScore(46546)
print("给所有的实例绑定一个方法：", stu2.score)
Student.method = "方法"
print("给所有实例绑定一个属性：", stu2.method)
